package xhhx.network;

import com.google.protobuf.MessageLite;
import simpleProtobuf.SimpleProtobuf;

import java.util.HashMap;
import java.util.Map;

public enum MsgType {
    Login(1, SimpleProtobuf.Login.getDefaultInstance(), SimpleProtobuf.LoginRt.getDefaultInstance()),
    ChangeName(2, SimpleProtobuf.ChangeName.getDefaultInstance(), SimpleProtobuf.ChangeNameRt.getDefaultInstance());

    private static Map<Integer, MsgType> templateMap = new HashMap<>();

    static {
        for (MsgType c : MsgType.values())
            templateMap.put(c.msgId, c);
    }

    public final int msgId;
    public final MessageLite receive;
    public final MessageLite send;

    MsgType(int msgId, MessageLite receive, MessageLite send) {
        this.msgId = msgId;
        this.receive = receive;
        this.send = send;
    }

    public static MessageLite GetReceiveTemplate(int msgId) {
        MsgType m = templateMap.get(msgId);
        return m != null ? m.receive : null;
    }

    public static MessageLite GetSendTemplate(int msgId) {
        return templateMap.get(msgId).send;
    }
}
